<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>03_函数</title>
</head>
<body>
    <button onclick="alert('警告框')">弹出警告框</button>
    <button onclick="confirm('确认要退出登录吗？')">弹出确认框</button>
    <button onclick="prompt('请输入用户名')">弹出输入框</button>

<script>
    //
    console.log(parseInt(6.6));
    console.log(parseInt(6.1));
    console.log(parseInt(6));
    console.log(parseInt('hhhh'));
    console.log(parseInt('345hhh78'));

    console.log(parseFloat(5));//5 不需要转换都属与number 类型
    console.log(parseFloat(5.8));//5.8
    console.log(parseFloat('hhh'));
    console.log(parseFloat('3.4hhh2.3hhh7.8'));

    //判断是否为NaN 非数字，数字得到false，非数字得到true
    console.log(isNaN('hhh'));
    console.log(isNaN(6));
    console.log(isNaN(6.6));
    console.log(isNaN('6'));

    //1.JS通过function关键字定义函数
    function f1(){
        console.log('f1函数');
    }
    f1();
    f1();
    f1();
    //2. 带参数的函数
    function f2(name){//形参
        console.log('f2函数,参数是'+name);
    }
    f2(1);//实参
    f2(false);
    f2('哈哈哈');
    //3. 形参与实参的个数
    function f3(x,y){
        console.log(x+y);
    }
    f3(1,2);//3
    f3(1);//NaN 1+undefined=NaN,实参个数小于形参个数：未被赋值的形参值为undefined
    f3(3,2,1);//5 , 实参个数大于形参个数：多出来的实参会被忽略掉
    //4. arguments对象 用于保存调用函数的参数
    function f4(){
        console.log(arguments);
    }
    f4(50);//Arguments[50,...]
    f4(50,60);//Arguments[50,60,...]
    f4(50,60,70);//Arguments[50,60,70,...]
    // 5. 函数的返回值
    function f5(a,b){
        return a+b;
    }
    var res=f5(1,2);
    console.log(res);//将函数return的结果保存到res变量种，再打印出来
    console.log(f5(1,2));//直接打印函数调用的结果
    //第二种函数声明方式
    var f6=function (){
        console.log('f6函数');
    }
    f6();//可以通过变量名直接充当函数名来调用
    console.log(f6,typeof f6);//f(){console.log('f6函数');} function

    // 第三种声明方式
    // 将函数整体交给常量f7 来保存，调用时直接通过常量名调用即可
    const f7=(n)=>{
        console.log('箭头函数'+n);
    }
    f7(6666);
    f7('你好');



</script>

</body>
</html>